Analyzing and predicting effort associated with finding and fixing software faults
نویسندگان
چکیده
Context: Software developers spend a significant amount of time fixing faults. However, not many papers have addressed the actual effort needed to fix software faults. Objective: The objective of this paper is twofold: (1) analysis of the effort needed to fix software faults and how it was affected by several factors and (2) prediction of the level of fix implementation effort based on the information provided in software change requests. Method: The work is based on data related to 1200 failures, extracted from the change tracking system of a large NASA mission. The analysis includes descriptive and inferential statistics. Predictions are made using three supervised machine learning algorithms and three sampling techniques aimed at addressing the imbalanced data problem. Results: Our results show that (1) 83% of the total fix implementation effort was associated with only 20% of failures. (2) Both post-release failures and safety-critical failures required more effort to fix than pre-release and non-critical counterparts, respectively; median values were two or more times higher. (3) Failures with fixes spread across multiple components or across multiple types of software artifacts required more effort. The spread across artifacts was more costly than spread across components. (4) Surprisingly, some types of faults associated with later life-cycle activities did not require significant effort. (5) The level of fix implementation effort was predicted with 73% overall accuracy using the original, imbalanced data. Oversampling techniques improved the overall accuracy up to 77% and, more importantly, significantly improved the prediction of the high level effort, from 31% to 85%. Conclusions: This paper shows the importance of tying software failures to changes made to fix all associated faults, in one or more software components and/or in one or more software artifacts, and the benefit of studying how the spread of faults and other factors affect the fix implementation effort.
منابع مشابه
Investigating the Software Fault Profile of Industrial Projects to Determine Process Improvement Areas: An Empirical Study
Improving software processes relies on the ability to analyze previous projects and derive which parts of the process that should be focused on for improvement. All software projects encounter software faults during development and have to put much effort into locating and fixing these. A lot of information is produced when handling faults, through fault reports. This paper reports a study of f...
متن کاملPredicting Effort to Fix Software Bugs
Predicting the time and effort for a software problem has long been a difficult task. We present an approach that predicts the fixing effort for an issue. Our technique leverages existing issue tracking systems: given a new issue report, we search for similar, earlier reports and use their average time as a prediction. Our approach thus allows for early effort estimation, helping in assigning i...
متن کاملUse of Orthogonal Arrays and Design of Experiments via Taguchi methods in Software Testing
To solve the problem of great number of test cases, and to force the configuration testing to be effective, combinatorial testing is proposed, using an Orthogonal Array Testing Strategy (OATS) as a systematic, statistical way of testing pair-wise interactions. This combinatorial approach to software testing uses models to generate a minimal number of test inputs so that selected combinations of...
متن کاملUsing Fuzzy Clustering and Software Metrics to Predict Faults in large Industrial Software Systems
Faults are a key problem in software systems. Awareness of possible flaws from the initialization of a project could save money, time and work. Estimating the possible deficiency of software could help in executing software development activities. This paper proposes a model to predict the possibility of faults on a software system before testing. The model predicts possible faults during softw...
متن کاملA New Empirical Model to Increase the Accuracy of Software Cost Estimation (TECHNICAL NOTE)
We can say a software project is successful when it is delivered on time, within the budget and maintaining the required quality. However, nowadays software cost estimation is a critical issue for the advance software industry. As the modern software’s behaves dynamically so estimation of the effort and cost is significantly difficult. Since last 30 years, more than 20 models are already develo...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
عنوان ژورنال:
- Information & Software Technology
دوره 87 شماره
صفحات -
تاریخ انتشار 2017